﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Telerik.WinControls.UI;
using log4net;
namespace QuanLyNhaSach
{
    public partial class FormPhu_NhanVien : Form
    {
        static FormPhu_NhanVien doituong = null;
        sv_QuanLyNhaSach.AdapterClient xuly = new sv_QuanLyNhaSach.AdapterClient();
        private ILog logger;

        public static FormPhu_NhanVien TaoDoiTuong()
        {
            if (doituong == null)
                doituong = new FormPhu_NhanVien();
            return doituong;
        }

        public FormPhu_NhanVien()
        {
            InitializeComponent();
        }
        KiemTraBatLoi batloi = new KiemTraBatLoi();
        public string maNV_Tam = "";
        private void bt_luu_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            try
            {               
                //kiểm tra lỗi
                if (txt_tennv.Text.Trim() == ""||batloi.Is_HoTen(txt_tennv.Text)==false)
                {
                    errorProvider1.SetError(txt_tennv, "Họ tên không hợp lệ hoặc được bỏ trống");
                    txt_tennv.Focus();
                    return;
                }
                if (dtp_ngaysinh.Text==null||dtp_ngaysinh.Value.Year<1900)
                {
                    errorProvider1.SetError(dtp_ngaysinh,"Chưa chọn ngày sinh hoặc ngày sinh không hợp lệ");
                    dtp_ngaysinh.Focus();
                    return;
                }
                if (ddl_chucvu.Text.Trim()=="")
                {
                    errorProvider1.SetError(ddl_chucvu,"Chưa chọn chứa vụ");
                    ddl_chucvu.Focus();
                    return;
                }
                if (txt_sdt.Text==""||batloi.Is_DoDaiSoDT(txt_sdt.Text)==false)
                {
                    errorProvider1.SetError(txt_sdt, "Số điện thoại không đúng hoặc đang bỏ trống");
                    txt_sdt.Focus();
                    return;
                }
                if (txt_cmnd.Text == ""||batloi.Is_DoDaiCMND(txt_cmnd.Text)==false)
                {
                    errorProvider1.SetError(txt_cmnd, "CMND không đúng hoặc đang bỏ trống");
                    txt_cmnd.Focus();
                    return;
                }
                if (txt_diachi.Text.Trim()=="")
                {
                    errorProvider1.SetError(txt_diachi,"Địa chỉ không được bỏ trống");
                    txt_diachi.Focus();
                    return;
                }
                string manv = txt_manv.Text;
                maNV_Tam = manv;
                string tennv = txt_tennv.Text;
                string sdt = txt_sdt.Text;
                DateTime ngaysinh = DateTime.Parse(dtp_ngaysinh.Value.ToString());
                string chucvu = ddl_chucvu.SelectedItem.ToString();
                string cmnd = txt_cmnd.Text;
                string diachi = txt_diachi.Text;
                if (!xuly.InsertNV(manv, tennv, sdt, ngaysinh, diachi, cmnd, chucvu))
                {
                    MessageBox.Show("Thêm thất bại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    maNV_Tam = "";
                    return;
                }
                else
                {
                    MessageBox.Show("Thêm thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    txt_manv.Text = TaoNVKeTiep();
                    txt_tennv.Text = "";
                    txt_sdt.Text = "";
                    txt_diachi.Text = "";
                    txt_cmnd.Text = "";
                    ddl_chucvu.Text = "";
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error: "+ex.Message);
            }


        }

        private void bt_Thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void FormPhu_NhanVien_Load(object sender, EventArgs e)
        {
            logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            try
            {
                    txt_manv.Text = TaoNVKeTiep();
                    txt_manv.Enabled = false;
                
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.Message);
            }
            
        }

        private string TaoNVKeTiep()
        {
            DataSet ds_tam = new DataSet();
            string mamoi = "";
            string maTam = "NV";
            try
            {
                ds_tam.ReadXml(new StringReader(xuly.selectqueryByText("select top 1 MaNV from NhanVien where MANV like '%" + maTam + "%'order by MANV desc")));
                if (ds_tam.Tables.Count == 0)
                    mamoi = maTam + "0001";
                else
                {
                    string matam = ds_tam.Tables[0].Rows[0][0].ToString();
                    string kituso = matam.Substring(2, 4).ToString();
                    int somoi = int.Parse(kituso) + 1;
                    mamoi = maTam + somoi.ToString("0000");
                }
                return mamoi;
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.Message);
            }
            return "";    

        }
        private void TextBoxKeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

    }
}
